#ifndef ASSET_MANAGER_H
#define ASSET_MANAGER_H

#include <vector>
#include <string>
#include "model.h"

// 资产管理器类，负责资产的CRUD操作和持久化
class AssetManager {
private:
    std::vector<Asset> assets;  // 资产列表
    int nextId;                 // 下一个可用的资产ID

    // 生成下一个资产ID
    int generateNextId();

public:
    // 构造函数
    AssetManager();

    // 获取所有资产
    std::vector<Asset> getAllAssets() const;

    // 根据ID获取资产
    bool getAssetById(int id, Asset& asset) const;

    // 添加新资产，返回新资产的ID
    int addAsset(const Asset& asset);

    // 更新资产信息，返回是否更新成功
    bool updateAsset(const Asset& asset);

    // 删除资产，返回是否删除成功
    bool deleteAsset(int id);

    // 获取资产总数
    int getAssetCount() const;

    // 从文件加载资产数据
    bool loadFromFile(const std::string& filename);

    // 将资产数据保存到文件
    bool saveToFile(const std::string& filename) const;
};

#endif // ASSET_MANAGER_H
